Host-Daten einlesen
Das Übernehmen von Daten von Servern und Hosts gehört zu den Anwendungen, die besonders gerne mit Code gelöst werden. Die dabei gegebenen Einstellmöglichkeiten sind sehr komplex-außer, es wird schon im Server eine EXCEL-Datei eingerichtet. Das dürfte aber selten der Fall sein; meistens haben wir es mit ASCII Text-Dateien zu tun.
Ein ausprogrammiertes Beispiel finden Sie in der Datei "Lesehost.xls". |
EXCEL sieht nur Dateien mit der Endung TXT als Textdateien an. Dateien mit den Endungen CVS und PRN werden weder vom interaktiven Text-Assistenten noch von den entsprechenden VBA-Befehlen akzeptiert.
Hinweis "CSV" steht zwar für "comma-separated values", aber unter Windows ist unter "comma" das in der Systemsteuerung eingestellte Listentrennzeichen zu verstehen-im deutschen Sprachgebiet also der Strichpunkt, im Englischen wirklich das Komma.
VBA hält für das automatischer Einlesen von Textdateien die Methode "OpenText" bereit. Sie ist komplex, dafür aber enorm leistungsfähig.
Sonderfälle
Nicht immer liegen Hostdaten in einer Form vor, die für die nahtlose Übernahme in EXCEL geeignet ist. Zwei dieser Sonderfälle möchte ich kurz behandeln.
Datum als Zeichenkette ohne Trennzeichen
Oft liegt in einer Übergabe-Datei das Datum als Zeichenkette in der Form TTMMJJ vor. EXCEL kann nicht erkennen, daß es sich dabei um ein Datum handelt. Es interpretiert die nur aus Ziffern bestehende Zeichenkette als Zahl. Zusätzlich wird die führende Null bei den Tagen 1 bis 9 nicht übernommen.
Das Ergebnis ist also eine Zahl, deren einzelne Ziffern für TTMMJJ bzw. TMMJJ stehen.
Hier hilft nur die Rückwandlung der Zahl in eine Zeichenkette. Aus dieser werden dann von hinten zunächst zwei Ziffern für das Jahr herausgeschnitten, dann zwei Ziffern für das Monat. Der Rest steht dann, egal ob es eine oder zwei Ziffern sind, für den Tag. Die drei Teil-Zeichenketten werden über die Funktion DateSerial in ein Datum umgewandelt.
Ein Beispiel dafür finden Sie in der Datei "Lesehost.xls" im VBA-Modul "Mod DatumUmwandeln".
Kennziffern mit führenden Nullen
Hier ist das selbe Problem gegeben. Die Zeichenkette wird in eine Zahl umgewandelt, führende Nullen werden weggelassen. Dies kann nur dadurch unterdrückt werden, daß beim Anwenden der VBA-Methode "OpenText" eine Feld-Info für die Spalte angegeben wird, in der die führenden Nullen erhalten bleiben sollen. Diese Feld-Info muß dem Feld den Typ "Text" zuweisen.
Ein Beispiel dafür finden Sie in der Datei "Lesehost.xls" im VBA-Modul "Mod FührendeNullenBehalten"
Copyright © by JOANNEUM RESEARCH Forschungsgesellschaft mbH |